Flujo típico de un proyecto
Flujo simple de un proyecto
Nuestro primer (mini)proyecto
Sabemos que en Colombia la inflación se ha acelerado, sin embargo, no en todas las ciudades se ha comportado de la misma manera.
1. Pregunta ¿Cómo ha diferido el comportamiento de la inflación anual entre ciudades del Caribe y el centro?
Para responder esta pregunta procederémos de la siguiente manera
Paso 1: Conseguir los datos relevantes. En este caso, el IPC por ciudades calculado por el DANE
Paso 1: Elegir 3 ciudades
Paso 2: Calcular la inflación anual
Paso 3: Decidir como comunicamos nuestro hallazgo. En este caso, haremos una gráfica
2. Datos Usamos el Índice de Precios al Consumidor, IPC, calculado mensualmente por el DANE. En el Repositorio del curso puede descargar los datos IPC
En esta fase debemos limpiar y organizar los datos para poder realizar el análisis. Esta parte es muy importante, a veces no es tan emocionante, pero es imprescindible. Como en todo modelo, Si entra basura sale basura.
- Paso 1: Cargar los datos. Siempre fíjese bien en el formato de los datos. En este caso el archivo de origen es excel, xlsx
library(readxl)
ipc <- read_excel("C:/Users/andresmv/OneDrive - Universidad del Norte/Drive/Uninorte/Uninorte-docencia/Data analytics/viernes_code/viernes_code/data/ipc.xls")
head(ipc)
# A tibble: 6 x 4
year ciudad ipc mes
<chr> <chr> <dbl> <dbl>
1 2018 MEDELLÍN 97.0 1
2 2018 BARRANQUILLA 97.3 1
3 2018 IBAGUÉ 97.9 1
4 2018 SINCELEJO 97.2 1
5 2018 BUCARAMANGA 98.2 1
6 2018 PEREIRA 97.7 1
es un lenguaje orientado a objetos. En nuestro casso, el objeto ipc que observamos en la ventana Environment es del tipo dataframe. Es ecir, una arreglo matricial de datos, donde en cada fila tenemos las observaciones y en cada columna las variables.
class(ipc)
[1] "tbl_df" "tbl" "data.frame"
- Paso 2: elegir 3 ciudades.
library(dplyr)
ipcs<-filter(ipc,ciudad=="BARRANQUILLA" | ciudad=="BOGOTÁ, D.C." | ciudad=="CALI")
- Paso 3: Crear variables
En la base de datos tenemos una columna que identifica el año y otra que identifica el mes. Necesitamos tener una nueva columna que tenga la fecha completa
library(lubridate)
ipcs$dia<-1
ipcs<-mutate(ipcs,date=make_date(year,mes,dia))
3. “Algoritmo”
Recuerde que la inflación se computa como la variación porcentual de IPC, y en este caso la variación se toma comparando el mes de un año con el mismo mes del año anterior. Así, por ejemplo, la inflación anual de agosto 2002 sería
\[ Inflación_{ag22}=\dfrac{ipc_{ag22}}{ipc_{ago21}}-1 \]
Para ilustrar, hagamos el cálculo únicamente para la ciudad de Barranquilla
baq<-filter(ipcs,ciudad=="BARRANQUILLA")
baq<-mutate(baq,inf=((ipc/lag(ipc,n=12L))-1)*100)
El cálculo lo debemos hacer para cada ciudad. Teniendo en cuenta que nuestros datos están estructurados en formato largo (las ciudades son categorías de la variable ciudad). Para ello, ampliaremos el código anterior con la función group_by
ipcs<-ipcs%>%group_by(ciudad)%>%mutate(inf=((ipc/lag(ipc,n=12L))-1)*100)
4. Comunicación
Vamos a comunicar nuestro resultado usando una gráfica de lineas que muestre la evolución temporal de la inflación para cada ciudad. Usaremos la biblioteca ggplot2 para graficar. Primero ilustramos con el gráfico únicamente para la ciudad de Barranquilla
library(ggplot2)
baq<-na.omit(baq)
baq.plot<-ggplot(baq,aes(x=date,y=inf))+geom_line()
baq.plot
El gráfico con las 3 ciudades lo construimos de la siguiente manera
ipcs<-na.omit(ipcs)
inf.plot<-ggplot(ipcs,aes(x=date,y=inf,colour=ciudad))+geom_line()
inf.plot
La presentación del gráfico la podemos mejorar.
También la podemos hacer interactiva